{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# livelossplot example: PyTorch Poutyne\n",
    "\n",
    "Last update: `livelossplot 0.5.3`. For code and documentation, see [livelossplot GitHub repository](https://github.com/stared/livelossplot).\n",
    "\n",
    "<a href=\"https://colab.research.google.com/github/stared/livelossplot/blob/master/examples/poutyne.ipynb\" target=\"_parent\">\n",
    "    <img src=\"https://colab.research.google.com/assets/colab-badge.svg\"/>\n",
    "</a>\n",
    "\n",
    "[Poutyne](https://poutyne.org/) is a Keras-like framework for [PyTorch](https://pytorch.org/) and handles much of the boilerplating code needed to train neural networks.\n",
    "\n",
    "You can use Poutyne to:\n",
    "- Train models easily.\n",
    "- Use callbacks to save your best model, perform early stopping and much more.\n",
    "\n",
    "See more at [poutyne.org](https://poutyne.org/). In this notebook, we show how to use `livelossplot` with Poutyne."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "!pip install poutyne livelossplot --quiet"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.optim as optim\n",
    "from torch.utils.data import DataLoader\n",
    "from torch.nn.init import xavier_normal_\n",
    "\n",
    "from torchvision import transforms\n",
    "from torchvision.datasets.mnist import MNIST\n",
    "\n",
    "from pkg_resources import parse_version\n",
    "import poutyne\n",
    "assert parse_version(poutyne.__version__) >= parse_version('1.0.0'), \"Please update your Poutyne version.\"\n",
    "\n",
    "from poutyne import Model\n",
    "\n",
    "from livelossplot import PlotLossesPoutyne"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [],
   "source": [
    "# data loading\n",
    "train_dataset = MNIST('./tmp/mnist/', \n",
    "                      train=True, \n",
    "                      download=True, \n",
    "                      transform=transforms.ToTensor())\n",
    "test_dataset = MNIST('./tmp/mnist/', \n",
    "                     train=False, \n",
    "                     download=True, \n",
    "                     transform=transforms.ToTensor())\n",
    "\n",
    "train_loader = DataLoader(train_dataset, batch_size=32, shuffle=True)\n",
    "test_loader = DataLoader(test_dataset, batch_size=32)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [],
   "source": [
    "# initialization function\n",
    "def init_module(module):\n",
    "    for m in module.modules():\n",
    "        if isinstance(m, nn.Linear):\n",
    "            xavier_normal_(m.weight.data, 1)\n",
    "            m.bias.data.zero_()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [],
   "source": [
    "# defining model\n",
    "torch.manual_seed(42)\n",
    "module = nn.Sequential(\n",
    "    nn.Flatten(),\n",
    "    nn.Linear(28*28, 10),\n",
    ")\n",
    "init_module(module)\n",
    "\n",
    "optimizer = optim.Adam(module.parameters(), lr=1e-3)\n",
    "model = Model(module, \n",
    "              optimizer, \n",
    "              nn.CrossEntropyLoss(), \n",
    "              batch_metrics=['accuracy'])\n",
    "\n",
    "if torch.cuda.is_available():\n",
    "    model.cuda()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [],
   "source": [
    "# setting up the livelossplot callback\n",
    "plotlosses = PlotLossesPoutyne()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "pycharm": {
     "is_executing": false,
     "name": "#%%\n"
    },
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x576 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy\n",
      "\ttraining         \t (min:   87.780, max:   93.118, cur:   93.118)\n",
      "\tvalidation       \t (min:   91.560, max:   92.780, cur:   92.780)\n",
      "Loss\n",
      "\ttraining         \t (min:    0.251, max:    0.468, cur:    0.251)\n",
      "\tvalidation       \t (min:    0.264, max:    0.305, cur:    0.264)\n"
     ]
    }
   ],
   "source": [
    "# fitting the model\n",
    "history = model.fit_generator(train_loader, test_loader,\n",
    "                              epochs=10,\n",
    "                              callbacks=[plotlosses],\n",
    "                              verbose=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.2"
  },
  "pycharm": {
   "stem_cell": {
    "cell_type": "raw",
    "metadata": {
     "collapsed": false
    },
    "source": []
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
